package com.example.pmxs;

import static android.content.ContentValues.TAG;

import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity4 extends AppCompatActivity {

    @SuppressLint("MissingInflatedId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);

        View view = findViewById(R.id.imagesa);
        DisplayMetrics displayMetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

        int halfScreenWidth = getScreenWidth(this);
        /*在安卓开发中，Context（上下文）是一个非常重要的概念。
Context 是一个提供应用环境全局信息的类，它允许访问应用的资源、启动活动、获取系统服务等。
Context 可以分为两种主要类型：
Application Context（应用上下文）：它的生命周期与整个应用的生命周期相同。通常通过 getApplicationContext() 方法获取。
Activity Context（活动上下文）：与特定的 Activity 相关联，其生命周期与对应的 Activity 相同。*/
//        view.getLayoutParams().width = halfScreenWidth;
//        view.setLayoutParams(view.getLayoutParams());

        Log.d(TAG,"屏幕的宽度是:" + getScreenWidth(this));
        Log.d(TAG,"屏幕的高度是:" + getScreenHeight(this));
        Log.d(TAG,"屏幕的密度是:" + getScreenDensity(this));
    }

    //获得屏幕的宽度
    public static int getScreenWidth(Context ctx ) {
        //从系统服务器中获取窗口管理器
        WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics dm = new DisplayMetrics();
        //默认显示器中获取显示参数保存到dm对象中
        wm.getDefaultDisplay().getMetrics(dm);
        return dm.widthPixels;//返回屏幕的宽度数值
    }
    //获取屏幕的高度
    public static int getScreenHeight(Context ctx ) {
        //从系统服务器中获取窗口管理器
        WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics dm = new DisplayMetrics();
        //默认显示器中获取显示参数保存到dm对象中
        wm.getDefaultDisplay().getMetrics(dm);
        return dm.heightPixels;//返回屏幕的宽度数值
    }
    //获取屏幕的像素密度
    public static float getScreenDensity(Context ctx ) {
        //从系统服务器中获取窗口管理器
        WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics dm = new DisplayMetrics();
        //默认显示器中获取显示参数保存到dm对象中
        wm.getDefaultDisplay().getMetrics(dm);
        return dm.density;//返回屏幕的宽度数值
    }

}